#!/bin/bash

echo "=== Ptrace调试器演示 ==="
echo

# 检查文件是否存在
if [ ! -f "./debugger" ]; then
    echo "错误: 调试器未编译，请先运行 'make all'"
    exit 1
fi

if [ ! -f "./test_program" ]; then
    echo "错误: 测试程序未编译，请先运行 'make test_program'"
    exit 1
fi

echo "1. 首先，让我们查看测试程序的汇编代码，找到函数地址..."
echo

# 使用objdump查看函数地址
echo "测试程序的汇编代码片段:"
objdump -d ./test_program | grep -A 10 "<main>:" | head -15
echo

echo "2. 现在启动调试器并演示基本功能"
echo "注意: 调试器将在后台运行，您可以通过输入命令进行交互"
echo

echo "启动调试器..."
echo "在调试器中输入以下命令进行测试:"
echo "  launch ./test_program  # 启动测试程序"
echo "  continue               # 继续执行"
echo "  registers              # 查看寄存器"
echo "  quit                   # 退出"
echo

echo "要开始调试，请运行: ./debugger"
echo
echo "3. 或者，您也可以附加到运行中的进程:"
echo "   - 在一个终端运行: ./test_program"
echo "   - 在另一个终端运行: ./debugger"
echo "   - 然后输入: attach <PID>"
echo

echo "演示结束！"